<?php

/**

 * [WeEngine System] Copyright (c) 2014 WE7.CC

 * WeEngine is NOT a free software, it under the license terms, visited http://www.qincewang.com/ for more details.

 */

defined('IN_IA') or exit('Access Denied');

load()->model('app');

$title = $_W['account']['name'] . '微站';

$dos = array('index', 'editprofile', 'personal_info', 'contact_method', 'education_info', 'jobedit', 'avatar', 'address', 'addressadd');

$do = in_array($do, $dos) ? $do : 'index';

$navs = app_navs('profile');

load()->func('tpl');

$profile = mc_fetch($_W['member']['uid']);

if(!empty($_W['openid'])) {

	$map_fans = pdo_fetchcolumn('SELECT tag FROM ' . tablename('mc_mapping_fans') . ' WHERE uniacid = :uniacid AND openid = :openid', array(':uniacid' => $_W['uniacid'], ':openid' => $_W['openid']));

	if(!empty($map_fans)) {

		if (is_base64($map_fans)){

			$map_fans = base64_decode($map_fans);

		}

		if (is_serialized($map_fans)) {

			$map_fans = iunserializer($map_fans);

		}

		if(!empty($map_fans) && is_array($map_fans)) {

						empty($profile['nickname']) ? ($data['nickname'] = $map_fans['nickname']) : '';

			empty($profile['gender']) ? ($data['gender'] = $map_fans['sex']) : '';

			empty($profile['residecity']) ? ($data['residecity'] = ($map_fans['city']) ? $map_fans['city'] . '市' : '') : '';

			empty($profile['resideprovince']) ? ($data['resideprovince'] = ($map_fans['province']) ? $map_fans['province'] . '省' : '') : '';

			empty($profile['nationality']) ? ($data['nationality'] = $map_fans['country']) : '';

			empty($profile['avatar']) ? ($data['avatar'] = rtrim($map_fans['headimgurl'], '0') . 132) : '';

			if(!empty($data)) {

				mc_update($_W['member']['uid'], $data);

			}

		}

	}

}



$profile = pdo_get('mc_members', array('uniacid' => $_W['uniacid'], 'uid' => $_W['member']['uid']));

if(!empty($profile)) {

	if(empty($profile['email']) || (!empty($profile['email']) && substr($profile['email'], -6) == 'we7.cc' && strlen($profile['email']) == 39)) {

		$profile['email'] = '';

		$profile['email_effective'] = 1;

	}

}



$sql = 'SELECT `mf`.*, `pf`.`field` FROM ' . tablename('mc_member_fields') . ' AS `mf` JOIN ' . tablename('profile_fields') . " AS `pf`

		ON `mf`.`fieldid` = `pf`.`id` WHERE `mf`.`uniacid` = :uniacid AND `mf`.`available` = :available";

$params = array(':uniacid' => $_W['uniacid'], ':available' => '1');

$mcFields = pdo_fetchall($sql, $params, 'field');

$personal_info_hide = mc_card_settings_hide('personal_info');

$contact_method_hide = mc_card_settings_hide('contact_method');

$education_info_hide = mc_card_settings_hide('education_info');

$jobedit_hide = mc_card_settings_hide('jobedit');



if ($do == 'editprofile'){

	if ($_W['isajax'] && $_W['ispost']) {

		if (!empty($_GPC)) {

			$_GPC['createtime'] = TIMESTAMP;

			foreach ($_GPC as $field => $value) {

				if (!isset($value) || in_array($field, array('uid','act', 'name', 'token', 'submit', 'session'))) {

					unset($_GPC[$field]);

					continue;

				}

			}

			if(empty($_GPC['email']) && $profile['email_effective'] == 1) {

				unset($_GPC['email']);

			}

			mc_update($_W['member']['uid'], $_GPC);

		}

		message('更新资料成功！', referer(), 'success');

	}

}

if ($do == 'avatar') {

	$avatar = array('avatar' => trim($_GPC['avatar']));

	if (mc_update($_W['member']['uid'], $avatar)) {

		message('头像设置成功！', referer(), 'success');

	}

}



if ($do == 'address') {

	if ($_GPC['op'] == 'default') {

		pdo_update('mc_member_address', array('isdefault' => 0), array('uniacid' => $_W['uniacid'], 'uid' => $_W['member']['uid']));

		pdo_update('mc_member_address', array('isdefault' => 1), array('id' => $_GPC['id']));

		pdo_update('mc_members',  array('address' => $_GPC['address']),  array('uid' =>  $_W['member']['uid'], 'uniacid' => $_W['uniacid']));

	}

	if ($_GPC['op'] == 'delete') {

		pdo_delete('mc_member_address', array('id' => $_GPC['id']));

	}

	$where = ' WHERE 1';

	$params = array(':uniacid' => $_W['uniacid'], ':uid' => $_W['member']['uid']);

	if (!empty($_GPC['addid'])) {

		$where .= ' AND `id` = :id';

		$params[':id'] = intval($_GPC['addid']);

	}

	$where .= ' AND `uniacid` = :uniacid AND `uid` = :uid';

	$sql = 'SELECT * FROM ' . tablename('mc_member_address') . $where;

	if (empty($params[':id'])) {

		$psize = 10;

		$pindex = max(1, intval($_GPC['page']));

		$sql .= ' LIMIT ' . ($pindex - 1) * $psize . ',' . $psize;

		$addresses = pdo_fetchall($sql, $params);

		$sql = 'SELECT COUNT(*) FROM ' . tablename('mc_member_address') . $where;

		$total = pdo_fetchcolumn($sql, $params);

		$pager = pagination($total, $pindex, $psize);

	} else {

		$address = pdo_fetch($sql, $params);

	}

}



if ($do == 'addressadd') {

	if ($_W['isajax'] && $_W['ispost']) {

		$address = $_GPC['address'];

		if (empty($address['username'])) {

			message('请输入您的姓名', referer(), 'error');

		}

		if (empty($address['mobile'])) {

			message('请输入您的手机号', referer(), 'error');

		}

		if (empty($address['zipcode'])) {

			message('请输入您的邮政编码', referer(), 'error');

		}

		if (empty($address['province'])) {

			message('请输入您的所在省', referer(), 'error');

		}

		if (empty($address['city'])) {

			message('请输入您的所在市', referer(), 'error');

		}

		if (empty($address['district'])) {

			message('请输入您的所在区', referer(), 'error');

		}

		if (empty($address['address'])) {

			message('请输入您的详细地址', referer(), 'error');

		}

		$address['uniacid'] = $_W['uniacid'];

		$address['uid'] = $_W['member']['uid'];

		$address_data = pdo_get('mc_member_address', array('uniacid' => $_W['uniacid'], 'uid' => $address['uid']));

		if (empty($address_data)) {

			$address['isdefault'] = 1;

		}

		if (!empty($_GPC['addid'])) {

			if (pdo_update('mc_member_address', $address, array('id' => intval($_GPC['addid']), 'uid' => $address['uid']))) {

				message('修改收货地址成功', url('mc/profile/address'), 'success');

			} else {

				message('修改收货地址失败，请稍后重试', url('mc/profile/address'), 'error');

			}

		}

		if (pdo_insert('mc_member_address', $address)) {

			$adres = pdo_get('mc_member_address', array('uniacid' => $_W['uniacid'], 'uid' => $address['uid'], 'isdefault'=> 1));

			if (!empty($adres)) {

				$adres['address'] = $adres['province'].$adres['city'].$adres['district'].$adres['address'];

				pdo_update('mc_members', array('address' => $adres['address']), array('uid' => $address['uid']));

			}

			message('地址添加成功', url('mc/profile/address'), 'success');

		}

	}

	if (!empty($_GPC['addid'])) {

		$address = pdo_get('mc_member_address', array('id' => $_GPC['addid'], 'uniacid' => $_W['uniacid']));

	}

}

template('mc/profile');